/**
 * 代码清单-p2chapters-23页a：通过id查询用户 {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectById(java.lang.Long)}
 * 代码清单-p2chapters-24页a：通过id查询用户-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-26页a：查询全部用户 {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectAll()}
 * 代码清单-p2chapters-27页a：查询全部用户-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-31页a：根据用户id获取角色信息 {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectRolesByUserId(java.lang.Long)}
 * 代码清单-p2chapters-32页a：根据用户id获取角色信息-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-33页a：根据用户id获取角色信息V1版 {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectRolesByUserIdV1(java.lang.Long)}
 * 代码清单-p2chapters-33页a：根据用户id获取角色信息V1版-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-35页a：新增用户 {@link top.kaoshanji.p2chapters.mapper.UserMapper#insert(top.kaoshanji.p2chapters.model.SysUser)}
 * 代码清单-p2chapters-35页a：新增用户-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-39页a：新增用户，返回自增主键 {@link top.kaoshanji.p2chapters.mapper.UserMapper#insert2(top.kaoshanji.p2chapters.model.SysUser)}
 * 代码清单-p2chapters-39页a：新增用户，返回自增主键-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-43页a：根据主键更新 {@link top.kaoshanji.p2chapters.mapper.UserMapper#updateById(top.kaoshanji.p2chapters.model.SysUser)}
 * 代码清单-p2chapters-43页a：根据主键更新-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-45页a：通过主键删除 {@link top.kaoshanji.p2chapters.mapper.UserMapper#deleteById(java.lang.Long)}
 * 代码清单-p2chapters-45页b：通过SysUser删除 {@link top.kaoshanji.p2chapters.mapper.UserMapper#deleteById(top.kaoshanji.p2chapters.model.SysUser)}
 * 代码清单-p2chapters-45页a：通过主键删除-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-65页a：根据动态条件查询用户信息-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-66页a：根据动态条件查询用户信息 {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectByUser(top.kaoshanji.p2chapters.model.SysUser)}
 * 代码清单-p2chapters-68页a：根据主键更新 {@link top.kaoshanji.p2chapters.mapper.UserMapper#updateByIdSelective(top.kaoshanji.p2chapters.model.SysUser)}
 * 代码清单-p2chapters-68页a：根据主键更新-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-71页a：有id标签的插入数据 {@link top.kaoshanji.p2chapters.mapper.UserMapper#insert3(top.kaoshanji.p2chapters.model.SysUser)}
 * 代码清单-p2chapters-71页a：有id标签的插入数据-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-72页a：根据用户id或用户名查询 {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectByIdOrUserName(top.kaoshanji.p2chapters.model.SysUser)}
 * 代码清单-p2chapters-73页a：根据用户id或用户名查询-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-75页a：根据动态条件查询用户信息（where标签版本） {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectByUser1(top.kaoshanji.p2chapters.model.SysUser)}
 * 代码清单-p2chapters-75页a：根据动态条件查询用户信息（where标签版本）-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-76页a：根据主键更新（set标签版本） {@link top.kaoshanji.p2chapters.mapper.UserMapper#updateByIdSelective1(top.kaoshanji.p2chapters.model.SysUser)}
 * 代码清单-p2chapters-76页a：根据主键更新（set标签版本）-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-78页a：根据用户id集合查询 {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectByIdList(java.util.List)}
 * 代码清单-p2chapters-78页a：根据用户id集合查询-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-81页a：批量插入用户信息 {@link top.kaoshanji.p2chapters.mapper.UserMapper#insertList(java.util.List)}
 * 代码清单-p2chapters-82页a：批量插入用户信息-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-84页a：通过 map 更新列 {@link top.kaoshanji.p2chapters.mapper.UserMapper#updateByMap(java.util.Map)}
 * 代码清单-p2chapters-84页a：通过 map 更新列-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-127页a：根据用户 id 获取用户信息和用户的角色信息-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-128页a：根据用户 id 获取用户信息和用户的角色信息 {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectUserAndRoleById(java.lang.Long)}
 * 代码清单-p2chapters-130页a：根据用户 id 获取用户信息和用户的角色信息（resultMap配置版本）-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-131页a：根据用户 id 获取用户信息和用户的角色信息（resultMap配置版本） {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectUserAndRoleById2(java.lang.Long)}
 * 代码清单-p2chapters-131页a：resultMap的继承示例-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-132页a：resultMap的association标签配置-resultMap映射-UserMapper.xml
 * 代码清单-p2chapters-133页a：根据用户 id 获取用户信息和用户的角色信息（association配置版本）
 * 代码清单-p2chapters-133页a：根据用户 id 获取用户信息和用户的角色信息（association配置版本）-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-134页a：根据用户 id 获取用户信息和用户的角色信息（association标签的嵌套查询）-resultMap映射-UserMapper.xml
 * 代码清单-p2chapters-135页a：根据角色 id 获取用户的角色信息（association标签的嵌套查询）-SQL语句-RoleMapper.xml
 * 代码清单-p2chapters-135页a：根据用户 id 获取用户信息和用户的角色信息（association标签的嵌套查询）{@link top.kaoshanji.p2chapters.mapper.UserMapper#selectUserAndRoleByIdSelect(java.lang.Long)}
 * 代码清单-p2chapters-135页a：根据用户 id 获取用户信息和用户的角色信息（association标签的嵌套查询）-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-137页a：根据用户 id 获取用户信息和用户的角色信息（延迟加载）-resultMap映射-UserMapper.xml
 * 代码清单-p2chapters-137页a：根据用户 id 获取用户信息和用户的角色信息（延迟加载）-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-137页a：根据用户 id 获取用户信息和用户的角色信息（延迟加载）{@link top.kaoshanji.p2chapters.mapper.UserMapper#selectUserAndRoleByIdSelect1(java.lang.Long)}
 * 代码清单-p2chapters-141页a：获取所有的用户以及对应的所有角色（第一版：完整版本）-resultMap映射-UserMapper.xml
 * 代码清单-p2chapters-141页a：获取所有的用户以及对应的所有角色（第二版：简化版本）-resultMap映射-UserMapper.xml
 * 代码清单-p2chapters-142页a：获取所有的用户以及对应的所有角色-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-142页a：获取所有的用户以及对应的所有角色 {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectAllUserAndRoles()}
 * 代码清单-p2chapters-146页a：权限实体映射-resultMap映射-PrivilegeMapper.xml
 * 代码清单-p2chapters-147页a：角色对应的权利列表-resultMap映射-RoleMapper.xml
 * 代码清单-p2chapters-147页a：用户有多个角色，每个角色有多个权限的两层嵌套-resultMap映射-UserMapper.xml
 * 代码清单-p2chapters-147页a：用户有多个角色，每个角色有多个权限-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-147页a：用户有多个角色，每个角色有多个权限 {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectAllUserAndRoles1()}
 * 代码清单-p2chapters-148页a：获取所有角色和对应的权限信息-SQL语句-RoleMapper.xml
 * 代码清单-p2chapters-149页a：获取所有角色和对应的权限信息 {@link top.kaoshanji.p2chapters.mapper.RoleMapper#selectAllRoleAndPrivileges()}
 * 代码清单-p2chapters-152页a：通过角色id获取该角色对应的所有权限信息-SQL语句-PrivilegeMapper.xml
 * 代码清单-p2chapters-152页a：将权限查询语句嵌套进来-resultMap映射-RoleMapper.xml
 * 代码清单-p2chapters-152页b：用户对应的角色集合-SQL语句-RoleMapper.xml
 * 代码清单-p2chapters-153页a：将角色查询语句嵌套进来-resultMap映射-UserMapper.xml
 * 代码清单-p2chapters-153页a：嵌套查询指定用户的信息以及用户的角色和权限信息-SQL语句-UserMapper.xml
 * 代码清单-p2chapters-153页a：嵌套查询指定用户的信息以及用户的角色和权限信息 {@link top.kaoshanji.p2chapters.mapper.UserMapper#selectAllUserAndRolesSelect(java.lang.Long)}
 * 代码清单-p2chapters-156页a：一个使用鉴别器的映射-resultMap映射-RoleMapper.xml
 * 代码清单-p2chapters-156页a：根据用户id获取用户的角色信息-SQL语句-RoleMapper.xml
 * 代码清单-p2chapters-157页a：根据用户id获取用户的角色信息 {@link top.kaoshanji.p2chapters.mapper.RoleMapper#selectRoleByUserIdChoose(java.lang.Long)}
 *
 * @author kaoshanji
 * ^_^
 * create time 2025/4/12 17:35
 */
package top.kaoshanji.p2chapters;